/*
 * FSWUniCEUB - 2008
 * 
 * Este arquivo é de propriedade da Fábrica de Software do UniCEUB
 * 
 * Para mais informações entre em contato com a coordenação do
 * curso de Ciência da Computação da instituição.
 */

package br.uniceub.fsw.seguranca.vo;

import br.uniceub.fsw.seguranca.dao.GrupoDAO;
import br.uniceub.fsw.seguranca.dao.UsuarioDAO;

/**
 * Value Object da entidade papel. Usada para transportar os dados
 * de um papel através das várias classes do sistema.
 * 
 * Tabela: TB_Papel
 *
 * @author Bruno
 */
public class PapelVO {
    /**
     * Identificador do papel.
     * 
     * Coluna: ID_Papel
     */
    private Integer idPapel;
    
    /**
     * Usuário que possui o papel.
     * 
     * Tabela referenciada: TB_Usuario
     * Coluna FK: CD_Usuario
     */
    private UsuarioVO usuario;

    /**
     * Id do usuário.
     * 
     * Tabela referenciada: TB_Usuario
     * Coluna FK: CD_Usuario
     */
    private Integer cdUsuario;

    /**
     * Grupo do papel.
     * 
     * Tabela referenciada: TB_Grupo
     * Coluna FK: CD_Grupo
     */
    private GrupoVO grupo;

    /**
     * Id do grupo.
     * 
     * Tabela referenciada: TB_Grupo
     * Coluna FK: CD_Grupo
     */
    private Integer cdGrupo;

    /*
     * Getters e Setters.
     * Estes métodos não devem conter nenhuma codificação fora da geração automática.
     * Não é necessária a geração de javadoc para esses métodos.
     */
    public Integer getCdGrupo() {
        return cdGrupo;
    }

    public void setCdGrupo(Integer cdGrupo) {
        this.cdGrupo = cdGrupo;
    }

    public Integer getCdUsuario() {
        return cdUsuario;
    }

    public void setCdUsuario(Integer cdUsuario) {
        this.cdUsuario = cdUsuario;
    }

    public GrupoVO getGrupo() {
        if(grupo == null) {
            grupo = new GrupoDAO().consultarPorId(cdGrupo);
        }
        return grupo;
    }

    public void setGrupo(GrupoVO grupo) {
        this.grupo = grupo;
    }

    public Integer getIdPapel() {
        return idPapel;
    }

    public void setIdPapel(Integer idPapel) {
        this.idPapel = idPapel;
    }

    public UsuarioVO getUsuario() {
        if(usuario == null) {
            usuario = new UsuarioDAO().consultarPorId(cdUsuario);
        }
        return usuario;
    }

    public void setUsuario(UsuarioVO usuario) {
        this.usuario = usuario;
    }
}
